// 给定一个字符串s，要求：逐个翻转字符串中所有的单词
// 说明： 数组字符串s可以在前面，后面或者单词之间包含多余的空格
// 翻转之后的单词应当只有一个空格分隔
// 翻转之后的字符串不应该包含额外的空格

// 思路，把单词先存入数字中，随后反转

function reverseWords(s) {
    let words = []
    let cur = ''
    for (let i = 0; i < s.length; i++) {
        if (s[i] === ' ') {
            if (cur) {
                words.push(cur)
                // 这里要及时置空
                cur = ''
            }
        } else {
            cur += s[i]
        }
    }
    if (cur) {
        words.push(cur)
    }
    let left = 0
    let right = words.length - 1
    while (left < right) {
        [words[left], words[right]] = [words[right], words[left]];
        left++
        right--
    }
    return words.join(' ') 
}

let s = "     hello world  abin"
console.log(reverseWords(s));